package com.molichuxing.gateway.bff.order.services;

import java.util.List;
import java.util.Map;

import com.molichuxing.framework.service.RootService;
import com.molichuxing.gateway.bff.order.entity.response.OrderOverdueVo;
import com.molichuxing.gateway.bff.order.entity.response.OrderRepaymentVo;
import com.molichuxing.gateway.utils.entity.UserEntity;

/**
 * 订单导出bff
 * 
 * @author zoumingyu
 * @date 2019年12月13日
 *
 */
public interface OrderDownloadBffService extends RootService {

	/**
	 * 查询专属里程本期还款计划导出数据
	 * 
	 * @param selectParams
	 * @return
	 * @throws Exception
	 */
	public List<OrderRepaymentVo> getOrderExclusivelCurrentPeriodDownload(Map<String, Object> selectParams)
			throws Exception;

	/**
	 * 查询专属里程本期还款计划导出数据条数
	 * 
	 * @param selectParams
	 * @return
	 * @throws Exception
	 */
	public Long getOrderExclusivelCurrentPeriodDownloadCount(Map<String, Object> selectParams) throws Exception;

	/**
	 * 异步发送专属里程本期还款计划导出数据
	 * 
	 * @param selectParams
	 * @param user
	 * @throws Exception
	 */
	public Boolean getOrderExclusivelCurrentPeriodDownloadEmail(Map<String, Object> selectParams, UserEntity user)
			throws Exception;

	/**
	 * 查询专属里程订单逾期未还导出数据
	 * 
	 * @param selectParams
	 * @return
	 */
	public List<OrderOverdueVo> getExclusivelOrderOverdueDownload(Map<String, Object> selectParams);

	/**
	 * 查询专属里程订单逾期未还导出数据条数
	 * 
	 * @param selectParams
	 * @return
	 * @throws Exception
	 */
	public Long getOrderExclusivelOverdueDownloadCount(Map<String, Object> selectParams) throws Exception;

	/**
	 * 异步发送专属里程订单逾期未还导出数据
	 * 
	 * @param selectParams
	 * @param user
	 * @throws Exception
	 */
	public Boolean getOrderExclusivelOverdueDownloadEmail(Map<String, Object> selectParams, UserEntity user)
			throws Exception;

}
